package main

import (
	"fmt"
)

func main() {
	/* 递归函数 */
	/* 阶乘 */
	factorial := Factorial(1)
	fmt.Println(factorial)

	/* fibonacci 数列 */
	for i := 0; i < 10; i++ {
		f := fibonacci(i)
		fmt.Print(f)
	}
}

/*
	递归计算阶乘
*/
func Factorial(n uint64) (result uint64) {
	if n > 0 {
		result = n * Factorial(n-1)
		return result
	}

	// 0的阶乘是1
	return 1
}

/*
	斐波那契数列
*/
func fibonacci(n int) int {
	if n < 2 {
		return n
	}
	return fibonacci(n-2) + fibonacci(n-1)
}
